namespace hjc {
	export function warn(...warns: any[]): void {
		console.warn('[hjc]', ...warns);
	}

	export function error(...errors: any[]): void {
		console.error('[hjc]', ...errors);
	}

	export function info(...info: any[]): void {
		console.info('[hjc]', ...info);
	}

	export function todo(position: string): void {
		console.warn('[hjc]', `<${position}> to be realized...`);
	}

	export function require(position: string, format: string, ...names: string[]): void {
		if (names.length <= 0) console.warn('[hjc]', `<${position}>`, `requires a ${format} param!`);
		else if (names.length == 1) console.warn('[hjc]', `<${position}>`, `requires a ${format} param: "${names[0]}"!`);
		else console.warn('[hjc]', `<${position}>`, `requires ${format} params:`, ...names.map(name => '"' + name + '"'));
	}

	export function wrong(position: string, wrong: string, name?: string): boolean {
		console.warn('[hjc]', `<${position}>`, `${!!name ? 'param "' + name + '" ' : ''}${wrong}!`);
		return false;
	}
}